Many devices such as personal computers (“PCs”), personal digital assistants (“PDAs”), embedded devices, etc., contain applications and software that need to be loaded for the device to accomplish the functions requested by a user. This software may be loaded in various stages into, for example, a processor or temporary memory of the device. For example, software that provides basic services to the device may be loaded during the boot process so that these services are immediately available to the device, whereas other software may be loaded on an as needed basis depending on requests made by the user. Individual software components may be loaded in whole or in part onto the device.
The different stages of software component or sub-component loading may be dependent upon the loading of other software components or sub-components. In certain instances, software components may fail to load correctly. When a software component fails to load correctly, the user may receive an indication that the software component did not load correctly, but not an indication as to the reason for the failure in the loading of the software component.